chore(deps): bump openmls to close the GCE dict-immutability bypass#3872
chore(deps): bump openmls to close the GCE dict-immutability bypass#3872tylerhawkes wants to merge 1 commit into
Conversation
|
Claude finished @tylerhawkes's task —— View job PR Review Complete ✓Review Date: July 17, 2026 08:21 UTC SummaryThis is a critical security patch that correctly bumps the openmls fork dependency from Changes ReviewedThe PR updates the openmls git rev across:
Review Findings✅ Code Quality
✅ Security
✅ Test Coverage
RecommendationApprove with action item: Create a pre-release checklist item to re-point the openmls pin from |
ApprovabilityVerdict: Approved This is a mechanical dependency version bump updating openmls git revisions to pull in an upstream security fix. No code changes in this repository, and the author owns all modified Cargo.toml files. You can customize Macroscope's approvability policy. Learn more. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3872 +/- ##
==========================================
+ Coverage 85.48% 85.55% +0.07%
==========================================
Files 415 415
Lines 66906 66927 +21
==========================================
+ Hits 57193 57262 +69
+ Misses 9713 9665 -48 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
What
Bumps the pinned
openmlsfork rev frome125674to2c8d8aec, which adds onecommit: enforce
app_data_dictionaryimmutability for bareGroupContextExtensionsproposals (xmtp/openmlstyler/gce-dict-immutability).Why
The app-data pre-v1.11 review found a bypass in the openmls fork: on a migrated
group (whose
required_capabilitiesincludeAppDataUpdate), a member could senda commit whose only proposal is a
GroupContextExtensionsproposal that swapsarbitrary
app_data_dictionaryentries. openmls'validate_app_data_update_proposals_and_group_contextskipped itsCannotUpdateDictionaryDirectlycheck whenever the commit carried noAppDataUpdateproposals, so the swap validated and merged — letting any memberpoison
COMPONENT_REGISTRY(wedging the group), fraudulently raise theMIN_SUPPORTED_PROTOCOL_VERSIONfloor, or corrupt metadata. This routed aroundthe super-admin gating that the app-data floor/registry validation relies on.
The fix lives entirely in openmls (pure MLS-draft §4.7-6 compliance) and is being
upstreamed in openmls/openmls#2125. This PR pulls it into the fork rev libxmtp
pins so v1.11 ships with the hole closed. When the fork rebases onto upstream
(see
openmls-fork-minimization-plan.md), the upstreamed commit supersedes thiscarry.
The fix is byte-identical on the fork and on upstream main; it changes only
validate_app_data_update_proposals_and_group_contextand adds a regression test.All existing openmls
app_data_update_proposal_validationtests still pass (108on the fork feature matrix), plus the new
test_group_context_update_dictionary_without_app_data_update.Note for the fork owner
The pin currently points at the branch
tyler/gce-dict-immutability. Before thev1.11 cut, this commit should be merged into the canonical shipping lineage
(
insipx/bincode-fixes) and the pin re-pointed there, so the release doesn't ridea personal branch.
Note
Bump openmls to patch GCE dict-immutability bypass
Updates the pinned git revision for all
openmls*dependencies in Cargo.toml and crates/xmtp-workspace-hack/Cargo.toml frome125674to2c8d8aeto pick up a security fix for a GCE dict-immutability bypass.Macroscope summarized 3e87b77.
🤖 Generated with Claude Code